package br.edu.ufersa.scrumgame.mbean;

import java.util.ArrayList;
import java.util.List;

import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

import br.edu.ufersa.scrumgame.facade.JogadorFacade;
import br.edu.ufersa.scrumgame.facade.PapelFacade;
import br.edu.ufersa.scrumgame.modelo.Jogador;
import br.edu.ufersa.scrumgame.modelo.Papel;

@ManagedBean
@SessionScoped
public class JogadorMBean {
	
	@EJB
	private JogadorFacade jogadorFacade;
	
	@EJB
	private PapelFacade papelFacade;
	
	private Jogador jogador = new Jogador();
	
	private List<Jogador> jogadores;
	
	private List<Jogador> jogadoresFiltro;
	
	private String acao;
	
	public Jogador getJogador() {
		return jogador;
	}
	
	public void setJogador(Jogador jogador) {
		this.jogador = jogador;
	}
	
	public List<Jogador> getJogadoresFiltro() {
		return jogadoresFiltro;
	}

	public void setJogadoresFiltro(List<Jogador> jogadoresFiltro) {
		this.jogadoresFiltro = jogadoresFiltro;
	}

	public List<Jogador> getJogadores() {
		jogadores = jogadorFacade.findAll();
		return jogadores;
	}
	
	public List<Jogador> getJogadoresOrderExp() {
		return jogadorFacade.findAllOrderExp();
	}
	
	public List<Papel> niveis(String descricao) {
		List<Papel> papeis = papelFacade.findAll();
		List<Papel> suggestions = new ArrayList<Papel>();
		
		for(Papel p : papeis ) {
			if(p.getDescricao().startsWith(descricao)) {
				suggestions.add(p);
			}
		}
		
		return suggestions;
	}
	
	public void editar() {
		acao = "editar";
	}
	
	public void salvar() {
		if( acao == "editar" ) {
			jogadorFacade.save(jogador);
		}
	}
}
